package me.spring.cloud.common.components.rabbitmq.message;

/**
 * @description: rabbitmq延迟重试消息体
 * @author: luffy
 * @create: 2019-01-18 13:47
 **/
public interface RetryMessage<T extends IMessage> extends IMessage {

  /** 消息体 */
  T getContent();

  /** 最大重试次数-默认不限制次数 */
  int getMaxAttempts();

  /** 最大重试时间间隔(秒) */
  int getMaxInterval();

  /** 最小重试时间间隔(秒) */
  int getMinInterval();

  /** 每次递增倍数 */
  int getMultiple();

  /** 已重试次数 */
  int getRetryNum();

  void countRetryNum();
}
